package com.ruoyi.develop.goodsSale.service;

import java.util.List;
import java.util.Map;

import com.ruoyi.develop.goodsSale.domain.GoodsSale;
import com.ruoyi.develop.orderIronRecord.domain.OrderIronRecord;
import com.ruoyi.develop.projectBaseInfo.domain.ProjectBaseInfo;
import org.springframework.web.multipart.MultipartFile;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * 销售信息管理Service接口
 * @author qh
 * @date 2023-01-05
 */
public interface IGoodsSaleService {
    /**
     * 查询销售信息管理
     * @param id 销售信息管理主键
     * @return 销售信息管理
     */
    public GoodsSale selectById(String id);

    /**
     * 查询销售信息管理列表
     * @param entity 销售信息管理
     * @return 销售信息管理集合
     */
    public List<GoodsSale> selectList(GoodsSale entity);
    public List<GoodsSale> listAndFour(GoodsSale entity);
    public List<GoodsSale> listProject(GoodsSale entity);
    public List<GoodsSale> listFinishDo(GoodsSale entity);
    public List<GoodsSale> selectListNotZero(GoodsSale entity);
    public List<GoodsSale> listSendNotZero(GoodsSale entity);
    public List<GoodsSale> listBatch(String[] ids);
    public List<GoodsSale> listNoQishen(GoodsSale entity);

    public List<GoodsSale> listByProjectId(GoodsSale entity);
    public List<GoodsSale> selectListNotProject(GoodsSale entity);
    public List<GoodsSale> listByProAndOrder(GoodsSale entity);
    public List<GoodsSale> selectByProjectId(String projectId);
    /**
     * 新增销售信息管理
     * @param entity 销售信息管理
     * @return 结果
     */
    public int insert(GoodsSale entity);

    public int addNotProject(GoodsSale entity);
//    public int insertForSale(GoodsSale entity);

    public void insertBatch(GoodsSale entity);
    public void insertForPrjNew(GoodsSale entity);
    public void insertForPrjGygx(GoodsSale entity);
    public void insertForPrjGygxAll(GoodsSale entity);
    /**
     * 修改销售信息管理
     * @param entity 销售信息管理
     * @return 结果
     */
    public int update(GoodsSale entity);

    public int editRemark(GoodsSale entity);
    public int addAgain(GoodsSale entity);
    public int editAgain(GoodsSale entity);

    public void updateByGongyiId(String gongyiId, String saleId);
    /**
     * 批量删除销售信息管理
     * @param ids 需要删除的销售信息管理主键集合
     * @return 结果
     */
    public int deleteByIds(String[] ids);

    /**
     * 删除销售信息管理信息
     * @param id 销售信息管理主键
     * @return 结果
     */
    public int deleteById(String id);

    public int deleteByIdThree(String id);

    public int toAgain(String id);

    public int deleteByIdFour(String id);

    void updateFundBackByPrjId(GoodsSale saleNeedUpdate);

//    void insertForPrj(GoodsSale entity);

    int deletSaleInfoForPrj(String id);

    int updateStatusByPro(String projectId,String status);

    Map<String, Object> importData(GoodsSale entity, MultipartFile file, ProjectBaseInfo projectBaseInfo);

    public void insertRuku(GoodsSale entity);

    public void insertRukuToZhijian(GoodsSale entity);

    void exportData(HttpServletRequest request, HttpServletResponse response, GoodsSale entity);

    List<GoodsSale> listByOrderIds(GoodsSale entity);

    List<GoodsSale> listMergeByOrders(GoodsSale entity);

    List<GoodsSale> listNoMergeByOrders(GoodsSale entity);

    void exportMergeDataByOrders(HttpServletRequest request, HttpServletResponse response, GoodsSale entity);

    List<GoodsSale> selectListYifahuo(String projectId,String status);

    public void updateStatusById(String id, String status);
    void exportNoMergeDataByOrders(HttpServletRequest request, HttpServletResponse response, GoodsSale entity);
}
